F1 community analysis

Gabriele Carrara, Alberto Filosa, Simone Tufano

17/12/2020

Abstract

L’obiettivo su cui si è basato lo studio è quello di ricercare una correlazione tra i risultati della Scuderia Ferrari nel campionato mondiale di Formula 1 nella stagione 2020 e il sentiment generale della community, riguardo al team e i piloti che lo rappresentano. Sono stati scaricati i tweets riguardo i seguenti topic: vettel, leclerc, ferrari, essereFerrari per ogni Gran Premio. Gli stessi sono prima stati preprocessati con tecniche di Text Mining e successivamente valutati attraverso diversi algoritmi di Sentiment Analysis. Infine, tramite le menzioni dei tweet, è stata costruita la rete sociale degli utenti per analizzare la community dei Tifosi.

Introduzione

Dopo anni di grandi successi nel mondo della Formula 1, nell’ultimo periodo la casa di Maranello ha subito un brusco rallentamento in termini di vittorie, sia per demeriti propri, sia per l’ascesa di nuove realtà. L’acquisizione del pilota Charles Leclerc nell’anno 2019, ha portato un grande spiraglio di luce, risvegliando l’entusiasmo dei Tifosi. Poiché la stagione 2020 non si è rivelata all’altezza delle aspettative, è stato nostro interesse monitorare l’opinione dei fan lungo il corso dell’intero campionato automobilistico.

Domande di ricerca

Sono state identificate le seguenti domande di ricerca:

  1. Esiste una correlazione tra i risultati ottenuti in pista e l’umore dei Tifosi?
  2. Come sono percepiti i due piloti da parte della Community? E la scuderia in generale?
  3. Quali sono i personaggi più influenti all’interno del panorama Ferrari1 su Twitter?
  4. Quali strategie potrebbe adottare il Brand per migliorare la comunicazione online?

Costruzione del dataset

I dati provengono da due fonti diverse: Wikipedia, necessaria per ottenere i risultati della squadra nelle varie competizioni, e Twitter2, da cui sono stati estrapolati i commenti dei tifosi.

Scraping da Wikipedia

Attraverso la libreria R reticulate, sono state estratte dalla pagina Wikipedia inerente i risultati del campionato 20203 le performance per ogni gara dei piloti Sebastian Vettel e Charles Leclerc. Nella Figura 1 si presentano i risultati della stagione:

Embedded Analytics with Tableau
Figura 1: Risultati Piloti Stagione 2020

Twitter

Poiché i tweets necessari ai fini dell’analisi erano precedenti ai limiti temporali imposti dalle API di Twitter, è stato necessario utilizzare la libreria snscrape 4 5, disponibile solamente in ambiente Python 3.8, che permette il recupero di un numero illimitato di tweets. Dal momento in cui il tema in questione è molto sentito in Italia, si è deciso di svolgere lo studio su frasi in lingua italiana. Quindi, utilizzando i topic descritti in precedenza e le date di ogni Gran Premio, sono stati scaricati un massimo di 1’000 post per ciascuna coppia topic-gara, così da ottenere un corpus di 46’157 documenti. La distribuzione del numero di tweet per topic è rappresentata in Figura 2.

**Figura 2**: Distribuzione dei Topic

Figura 2: Distribuzione dei Topic

Preprocessing

Per ogni documento presente nel corpus, sono state svolte le operazioni di preprocessing necessarie per analizzare il testo. In particolare:

  1. Tokenization, ciascuna frase è stata tokenizzata in unigrammi;
  2. Punctuation, sono state rimossi caratteri di punteggiatura;
  3. Rimozione URL, ciascun collegamento ipertestuale è stato rimosso in quanto i link non sono significativi ai fini del nostro scopo.
  4. Rimozione Stopwords, alla lista di parole identificate come stopword nella libreria nltk in lingua italiana, sono state aggiunti alcuni dei token più frequenti non significativi secondo la nostra opinione.

Non sono stati rimossi i caratteri numerici in quanto potrebbero essere utili ai fini dello studio nella fase di Sentiment Analysis supervisionata. Questo perché i numeri potrebbero far riferimento alle posizioni ottenute in gara e quindi avere un’accezione positiva o negativa.

Sentiment Analysis

Per calcolare il sentiment di ogni tweet sono stati utilizzati 3 approcci. I primi due approcci sono di tipo Lexicon-based, attraverso i vocabolari NRC e Sentyx 6, sui cui risultati è stato costruito un modello supervisionato.

Lexicon-Based

Non vi sono lessici specifici per Twitter per quanto riguarda la lingua italiana e solo NRC è implementato in una libreria R. L’output comprende due valori che indicano la positività e la negatività della frase. La differenza degli stessi è stata considerata come il sentiment del tweet. Sentyx, invece, consiste in un file di testo in cui ad ogni token è associato un valore per la direzione, positivo-negativo nel range [1, -1], e l’intensità (da 0 a 1). Per ottenere un valore univoco da associare alla parola in questione è stato considerato il prodotto tra questi due indicatori. In questo caso, il sentiment della frase è la somma delle parole che la compongono.

Supervised

Sulla base di quanto ottenuto dai risultati degli approcci Lexicon-Based, è stata ricavata una nuova misura che divide i tweets in negativi, positivi e neutrali secondo il seguente criterio:

  1. Negativi, se entrambi i valori precedenti erano negativi oppure uno negativo e l’altro uguale a 0;
  2. Positivi, se entrambi i valori precedenti erano positivi oppure uno positivo e l’altro uguale a 0;
  3. Neutrali, se entrambi erano uguali a 0 oppure con segni opposti.

Queste nuove etichette sono state utilizzate come classi da prevedere per un modello di classificazione. Dopo aver rappresentato il testo in uno spazio vettoriale di 500 elementi attraverso la tecnica del Bag of Words, queste features sono state utilizzate da una Support Vector Machine con l’intento di prevedere il sentiment. Di seguito il report di classificazione del modello utilizzato sulla partizione di test:

Tabella 1: Statistiche Descrittive Modello SVM
Precision Recall F1-Score
Negativo 0.83 0.80 0.82
Neutrale 0.63 0.79 0.70
Positivo 0.79 0.74 0.76
Accuracy 0.78

Questo modello è stato successivamente utilizzato per prevedere il sentiment dei tweets per l’ultimo Gran Premio della stagione, che si è tenuto ad Abu Dhabi il 13 Dicembre 2020, dimostrando ancora una polarità principalmente negativa nonostante fosse un’occasione particolare, ossia l’ultima gara di Sebastian Vettel per la Scuderia.

**Figura 3**: Sentiment Abu Dhabi

Figura 3: Sentiment Abu Dhabi

Visualizzazioni in Tableau

I risultati ottenuti dai vari approcci sono stati riportati in Tableau per essere visualizzati. È emersa la correlazione negativa tra risultati e sentiment che ci si aspettava. Il sentiment NCR è abbastanza neutro ma diventa positivo al raggiungimento di ottimi risultati in pista. Invece, è negativo per gare andate particolarmente male, in cui non sono state raggiunte le posizioni necessarie per guadagnare punti o in cui i piloti hanno fatto degli incidenti, in particolare il 12 Luglio 2020 ed il 6 Dicembre 2020.

Embedded Analytics with Tableau
Figura 4: Sentiment Analysis con Lexicon NRC

La seconda metrica invece mostra un sentiment negativo per tutto l’andamento della stagione, ad eccezione delle due gare in cui la scuderia ha ottenuto i risultati migliori, in particolare il 25 Ottobre 2020 ed il 15 Novembre 2020.

Embedded Analytics with Tableau
Figura 5: Sentiment Analysis con Lexicon Sentyx

I due sentiment mostrano risultati abbastanza discordanti. Mentre la prima sembra specchio di un umore discretamente positivo, la seconda mostra uno scenario sconfortante. È invece chiaro come in entrambi gli approcci, il topic a cui sono associati la maggior parte dei commenti negativi sia Vettel, pilota reduce da una stagione deludente dal punto di vista delle prestazioni.

Infine, la Figura 6 mostra una Wordcloud raffigurante i termini più frequenti per i quali è possibile osservare la loro distribuzione nelle frasi negative, positive o neutrali.

Embedded Analytics with Tableau
Figura 6: Wordcloud e Sentiment

Social Network Analysis

Il secondo task prevede la costruzione di una rete sociale della community costruita attraverso le menzioni all’interno dei tweets. Dei circa 50’000 tweet iniziali, 19’000 contenevano almeno una menzione. Sono state quindi ricreate tutte le coppie menzionato - menzionante (tabella degli archi) e tutti gli utenti coinvolti (tabella dei nodi). Sono stati identificati 10’211 nodi e 30’899 archi, di cui 17’832 unici.

La Social Network risultante ha le seguenti caratteristiche:

Tabella 2: Statistiche Descrittive Social Network
Metrica Valore
Average Degree 1.746
Network Diameter 16
Graph Density 0.001
Average Clustering Coefficient 0.076
Average Path Length 5.115
Assortativity Degree -0.196

Si nota che il grafo è leggermente Disassortative, ciò implica che i grandi Hubs non tendono a legarsi tra di loro. In particolare, i tag avvengono maggiormente da utenti con grado basso, mentre gli hubs generalmente non hanno legami tra di loro, anche perchè, come nel caso di Charles Leclerc, non utilizzano Twitter per comunicare. È stato utilizzato il software Gephi 7 8 per rappresentare graficamente la rete sociale appena creata. Il layout utilizzato è Open Ord, utile per distinguere maggiormente i cluster e basato sull’algoritmo di Frutcherman-Reingolg.

Degree

Gli utenti con grado più alto sono:

Tabella 3: Utenti con Grado maggiore
Username Degree
Charles_Leclerc 2298
ScuderiaFerrari 1427
SkySport 739
deadlinex 318
F1 287
FormulaHumor 222

Sorprende la presenza di utenti non legati direttamente al circuito di Formula 1, deadlinex e FormulaHumor, che creano molte interazioni sia in entrata che in uscita.

In Tabella 4 è possibile osservare che il grado generale è maggiormente legato alle menzioni rispetto che all’attività dell’utente sul Social Network.

Tabella 4: In-Degree ed Out-Degree
Username In-Degree Username Out-Degree
Charles_Leclerc 2298 MaurizioVoltini 72
ScuderiaFerrari 1422 sebavettels 72
SkySport 733 MrETP 58
deadlinex 292 alex85ferrari 56
F1 287 hewhowaslinving 49

Community Detection

Per la Community Detection è stato applicato l’algoritmo gerarchico di Louvain, che massimizza la modularità entro i gruppi. Questo significa massimizzare la densità di connessioni entro il cluster rispetto a quella verso l’esterno del cluster. Sono risultati 1’026 gruppi con una modularità di 0.673 e un numero medio di unità per cluster di circa 10 nodi. Osservando la distribuzione dei nodi nei gruppi, si nota che solamente un numero ridotto di cluster è popolato da un numero considerevole di unità, mentre molti gruppi sono composti da due soli utenti in quanto uno ha menzionato l’altro ed entrambi non hanno legami con altri Tifosi.

Di seguito si mostra la rappresentazione grafica della Community Detection, in cui sono state evidenziate le Community più popolose. La dimensione dei nodi è proporzionale al numero di menzioni (In-Degree) nei tweet, in quanto considerato come il fulcro della community:

**Figura 7**: Community Detection

Figura 7: Community Detection

Tabella 5: Maggiori community
Colore Caratterizzazione Percentuale
Violetto Charles Leclerc 15.11%
Verde Pagine Umoristiche 11.16%
Azzurro Scuderia Ferrari 10.96%
Giallo Sky Sport 7.11%
Arancio Altri Piloti ed Ambiente F1 4.67%
Magenta Mondo Sportivo Italiano 3.95%
Verde Acqua Non Ben Identificabile 2.57%
Rosa Non Ben Identificabile 2.41%
Grigio Restante 42.06%

Per le 5 community più numerose, si è proceduto ad un calcolo della sentiment media entro il cluster. In Tabella 6 si presentano i risultati:

Tabella 6: Sentiment nelle maggiori community
Community Sentiment NRC Sentiment Sentyx
Charles Leclerc 0.120 -0.080
Pagine Umoristiche 0.168 0.019
Scuderia Ferrari 0.090 -0.055
Sky Sport 0.022 -0.065
Altri Piloti ed Ambiente F1 0.194 -0.109

Si osservano delle lieve differenze tra una community e l’altra. Ad esempio le pagine umoristiche presentano una polarità positiva, mentre sorprende la community relativa a Altri Piloti ed Ambiente F1 che è caratterizzata da una polarità molto elevata per la prima metrica di sentiment ed è invece particolarmente bassa per la seconda. Inoltre, i commenti dei giornalisti (community Sky Sport) sono tra i più neutrali in quanto cercano di descrivere in modo oggettivo quanto accaduto in pista.

Centrality Measures

Le unità con Closeness Centrality più elevata, ovvero quelle che sono mediamente meno distanti da tutte le altre, sono le seguenti:

Tabella 7: Closeness Centrality
Username Closeness
Charles_Leclerc 0.000181
marc_gene 0.000151
GT_Open 0.000151
EuropeanLMS 0.000151
UnitedAutosport 0.000151

Non sorprende la presenza di Charles Leclerc, in quanto è sicuramente vicino a tutti gli utenti della Community, così come Marc Gene, un personaggio di riferimento per i tifosi della scuderia di Maranello. Non appare, invece, Sebastian Vettel in quanto non possiede alcun account social ufficiale.

Le unità con Betweenness Centrality più elevata, ovvero quelle che appiano più spesso nello Shortest Path tra due unità, sono le seguenti:

Tabella 8: Betweenness Centrality
Username Betweenness
deadlinex 0.000411
sebavettels 0.000376
MaurizioVoltini 0.000335
alex85ferrari 0.000276
FormulaHumor 0.000251
**Figura 8**: Betweenness Centrality

Figura 8: Betweenness Centrality

Si osserva che sono presenti gli utenti con maggiore interazione sia per In Degree che per Out Degree, poiché avere molti archi in ingresso ed in uscita rende il nodo di passaggio.

Conclusioni

In merito alle domande di ricerca, si può affermare che:

  1. Esiste una correlazione tra i risultati ottenuti in pista e l’umore dei Tifosi? Esiste un leggero trend negativo lungo tutta la stagione ed una forte correlazione legata ai risultati in pista tra un Gran Premio e l’altro.
  2. Come sono percepiti i due piloti da parte della Community? E la scuderia in generale? Il preferito della Community è Charles Leclerc, mentre Sebastian Vettel ha avuto una stagione sottotono. La Scuderia Ferrari ha deluso le aspettative per quanto riguarda la costruzione della monoposto, ma durante la stagione non ha commesso grossi errori nelle strategie di gara, quindi ha portato ad un umore lievemente positivo.
  3. Quali sono i personaggi più influenti all’interno del panorama Ferrari su Twitter? Oltre agli account ufficiali della scuderia di Maranello, sono emersi alcuni utenti molto influenti che raggruppano una buona parte di pubblico (deadlinex e FormulaHumor).
  4. Quali strategie potrebbe adottare il Brand per migliorare la comunicazione online? Al di là del miglioramento dei risultati in pista, per la comunicazione sui Social si potrebbe pensare ad una collaborazione con i maggiori influencer del settore identificati nella domanda precedente. Questi personaggi, avendo un grande seguito ed essendo importanti nel circolo delle informazioni, potrebbero sicuramente influenzare l’opinione di molti altri utenti.

Riferimenti